/***************************************************************************
 创建者: 华磊
 开始时间: 2018.8.14
 copyright: (C) 华友高科
 修改说明: (每次有修改就添加一条，带有 修改人，修改时间，修改描述)
 example (1) hualei 2017.5.8 类的具体实现代码编写

 ***************************************************************************
 *  @file x.h
 *  功能:
 *
 *                                                                         *
 ***************************************************************************/
#ifndef SYSINFOGET_H
#define SYSINFOGET_H

#include <stdio.h>
//磁盘信息
#include <sys/statfs.h>
#include <sys/vfs.h>
#include <errno.h>

//内存信息
#include <sys/sysinfo.h>

#include <unistd.h>
#include <sys/time.h>
//系统账号信息
#include <pwd.h>
//文件信息
#include <dirent.h>
#include <sys/stat.h>

#include <QDebug>
/**
 * @brief The SysInfoGet class 系统资源信息类
 */
class SysInfoGet
{
public:
    SysInfoGet();

public:
    /**
     * @brief MBsize            计算MB用
     */
    double MBsize;

    char *path;
    char *pathUsb;
    /**
     * @brief diskInfo          系统分区磁盘大小
     */
    struct statfs diskInfo;
    /**
     * @brief memInfo           内存信息
     */
    struct sysinfo memInfo;
    /**
     * @brief diskInfo2         usb分区磁盘大小
     */
    struct statfs diskInfo2;

    struct dirent *ent;

public:
    /**
     * @brief totalDiskSize     磁盘大小
     */
    double totalDiskSize;
    /**
     * @brief usedDiskSize      已用磁盘大小
     */
    double usedDiskSize;
    /**
     * @brief totalMemSize      内存大小
     */
    double totalMemSize;
    /**
     * @brief usedMemSize       已用内存
     */
    double usedMemSize;
    /**
     * @brief totalUsbSize      usb大小
     */
    double totalUsbSize;
    /**
     * @brief usedUsbSize       usb已用大小
     */
    double usedUsbSize;
    /**
     * @brief usbExist          usb是否存在
     */
    bool usbExist;


public:
    /**
    * @brief getSysInfoInit    初始化数据
    */
    void getSysInfoInit();
    /**
    * @brief getSysInfo        获取数据
    */
    void getSysInfo();
};

#endif // SYSINFOGET_H
